package io.gitee.terralian.commons.tool;


/**
 * 比较工具类，继承于{@link Comparable}的相同类型都可以进行比较
 */
public abstract class CompareTool {

    /**
     * 参数1 大于 参数2
     *
     * @param var1 参数1
     * @param var2 参数2
     * @param <T> 类型
     */
    public static <T extends Comparable<T>> boolean isGreater(T var1, T var2) {
        return var1.compareTo(var2) > 0;
    }

    /**
     * 参数1 大于等于 参数2
     *
     * @param var1 参数1
     * @param var2 参数2
     * @param <T> 类型
     */
    public static <T extends Comparable<T>> boolean isGreaterEqual(T var1, T var2) {
        return var1.compareTo(var2) >= 0;
    }

    /**
     * 参数1 小于 参数2
     *
     * @param var1 参数1
     * @param var2 参数2
     * @param <T> 类型
     */
    public static <T extends Comparable<T>> boolean isLess(T var1, T var2) {
        return var1.compareTo(var2) < 0;
    }

    /**
     * 参数1 小于等于 参数2
     *
     * @param var1 参数1
     * @param var2 参数2
     * @param <T> 类型
     */
    public static <T extends Comparable<T>> boolean isLessEqual(T var1, T var2) {
        return var1.compareTo(var2) <= 0;
    }

    /**
     * 参数1 == 参数2
     *
     * @param var1 参数1
     * @param var2 参数2
     * @param <T> 类型
     */
    public static <T extends Comparable<T>> boolean isEqual(T var1, T var2) {
        return var1.compareTo(var2) == 0;
    }
}
